package exam;

import java.util.List;

/**
 * 用户数据访问对象(DAO)接口
 * 定义了对TB_USER表的所有操作
 */
public interface UserDao {

    /**
     * 创建用户表
     */
    void createTable();

    /**
     * 添加新用户
     * @param user 要添加的用户对象
     */
    void insert(User user);

    /**
     * 用户登录验证
     * @param userno 用户编号
     * @param password 密码
     * @return 验证成功返回true，否则返回false
     */
    boolean login(String userno, String password);

    /**
     * 更新用户信息
     * @param user 要更新的用户对象
     */
    void update(User user);

    /**
     * 删除多个用户
     * @param usernos 要删除的用户编号数组
     */
    void delete(String[] usernos);

    /**
     * 获取所有用户列表
     * @return 包含所有用户的列表
     */
    List<User> getAll();

    /**
     * 分页查询用户
     * @param pageSize 每页记录数
     * @param pageNum 页码(从1开始)
     * @return 当前页的用户列表
     */
    List<User> getUserForPage(int pageSize, int pageNum);

    /**
     * 根据用户编号查询用户
     * @param userno 用户编号
     * @return 对应的用户对象，找不到返回null
     */
    User getUserByNo(String userno);
}